//package jp.sourceforge.talisman.mds;
//
///*
// * $Id: ItemTest.java,v 1.1 2009/09/12 05:06:20 weiwei Exp $
// */
//
//import org.junit.Assert;
//import org.junit.Before;
//import org.junit.Test;
//
///**
// * 
// * @author Haruaki Tamada
// * @version $Revision: 1.1 $ 
// */
//public class ItemTest{
//    private Item item;
//
//    @Before
//    public void setUp(){
//        item = new Item("label");
//
//        item.add(0);
//        item.add(1);
//        item.add(2);
//        item.add(3);
//        item.add(4);
//    }
//
//    @Test(expected=NullPointerException.class)
//    public void testLabelNullCheck(){
//        new Item((String)null);
//    }
//
//    @Test(expected=NullPointerException.class)
//    public void testSelfConstructorNullCheck(){
//        new Item((Item)null);
//    }
//
//    @Test
//    public void testBasic(){
//        Assert.assertEquals("label", item.getName());
//        Assert.assertEquals(0, item.getGroupId());
//    }
//
//    @Test
//    public void testEquals(){
//        Item item2 = new Item("item2");
//        item2.add(0);
//        item2.add(1);
//        item2.add(2);
//        item2.add(3);
//        item2.add(4);
//
//        Assert.assertFalse(item.equals(null));
//        Assert.assertFalse(item.isSame(null));
//
//        Assert.assertTrue(item.equals(item2));
//        Assert.assertFalse(item.isSame(item2));
//
//        item2.setName("label");
//        Assert.assertTrue(item.isSame(item2));
//
//        item2.remove(1);
//        Assert.assertFalse(item.equals(item2));
//
//        item2.add(1, 3);
//        Assert.assertFalse(item.equals(item2));
//    }
//
//    @Test
//    public void testNumbers(){
//        Assert.assertEquals(5, item.getDimension());
//
//        Assert.assertEquals(0, item.get(0));
//        Assert.assertEquals(1, item.get(1));
//        Assert.assertEquals(2, item.get(2));
//        Assert.assertEquals(3, item.get(3));
//        Assert.assertEquals(4, item.get(4));
//
//        Assert.assertEquals("label[0] (0, 1, 2, 3, 4)", item.toString());
//    }
//
//    @Test
//    public void testDoubleValue(){
//        Item c = new Item("doubleValue");
//        c.add(1.1d);
//        c.add(2.2d);
//        c.add(3.3d);
//        c.add(4.44d);
//
//        Assert.assertEquals(
//            String.format("doubleValue[0] (%g, %g, %g, %g)", 1.1d, 2.2d, 3.3d, 4.44d),
//            c.toString()
//        );
//    }
//
//    @Test
//    public void testSelfConstructor(){
//        Item coordinate = new Item(this.item);
//
//        Assert.assertEquals(5, coordinate.getDimension());
//
//        Assert.assertEquals(0, coordinate.get(0));
//        Assert.assertEquals(1, coordinate.get(1));
//        Assert.assertEquals(2, coordinate.get(2));
//        Assert.assertEquals(3, coordinate.get(3));
//        Assert.assertEquals(4, coordinate.get(4));
//
//        Assert.assertEquals("label[0] (0, 1, 2, 3, 4)", coordinate.toString());
//    }
//
//    @Test
//    public void testSelfConstructor2(){
//        item.setLimit(3);
//        Item item2 = new Item(item);
//
//        Assert.assertTrue(item2.isLimitted());
//        Assert.assertEquals(3, item2.getDimension());
//
//        Assert.assertEquals(0, item2.get(0));
//        Assert.assertEquals(1, item2.get(1));
//        Assert.assertEquals(2, item2.get(2));
//
//        Assert.assertEquals("label[0] (0, 1, 2)", item2.toString());
//    }
//
//    @Test
//    public void testDimensionConstructor(){
//        Item item2 = new Item("label", 4);
//
//        Assert.assertFalse(item2.isLimitted());
//        Assert.assertEquals(4, item2.getDimension());
//
//        Assert.assertEquals(0, item2.get(0));
//        Assert.assertEquals(0, item2.get(1));
//        Assert.assertEquals(0, item2.get(2));
//        Assert.assertEquals(0, item2.get(3));
//
//        Assert.assertEquals("label[0] (0, 0, 0, 0)", item2.toString());
//
//        item2.setLimit(3);
//        Assert.assertTrue(item2.isLimitted());
//        Assert.assertEquals(3, item2.getDimension());
//
//        Assert.assertEquals(0, item2.get(0));
//        Assert.assertEquals(0, item2.get(1));
//        Assert.assertEquals(0, item2.get(2));
//
//        Assert.assertEquals("label[0] (0, 0, 0)", item2.toString());
//    }
//
//    @Test
//    public void testUpdateBasic(){
//        item.setName("label2");
//        item.setGroupId(1);
//
//        Assert.assertEquals("label2", item.getName());
//        Assert.assertEquals(1, item.getGroupId());
//
//        Assert.assertEquals("label2[1] (0, 1, 2, 3, 4)", item.toString());
//    }
//
//    @Test
//    public void testAddNumbers(){
//        item.add(1, 9);
//
//        Assert.assertEquals(6, item.getDimension());
//        Assert.assertEquals(0, item.get(0));
//        Assert.assertEquals(9, item.get(1));
//        Assert.assertEquals(1, item.get(2));
//        Assert.assertEquals(2, item.get(3));
//        Assert.assertEquals(3, item.get(4));
//        Assert.assertEquals(4, item.get(5));
//
//        Assert.assertEquals("label[0] (0, 9, 1, 2, 3, 4)", item.toString());
//    }
//
//    @Test
//    public void testUpdateNumbers(){
//        item.set(1, 9);
//
//        Assert.assertEquals(5, item.getDimension());
//        Assert.assertEquals(0, item.get(0));
//        Assert.assertEquals(9, item.get(1));
//        Assert.assertEquals(2, item.get(2));
//        Assert.assertEquals(3, item.get(3));
//        Assert.assertEquals(4, item.get(4));
//
//        Assert.assertEquals("label[0] (0, 9, 2, 3, 4)", item.toString());
//    }
//
//    @Test
//    public void testLimits(){
//        Assert.assertFalse(item.isLimitted());
//
//        item.setLimit(3);
//        Assert.assertTrue(item.isLimitted());
//
//        Assert.assertEquals(3, item.getDimension());
//        Assert.assertEquals(5, item.getNonLimittedDimension());
//        Assert.assertEquals(0, item.get(0));
//        Assert.assertEquals(1, item.get(1));
//        Assert.assertEquals(2, item.get(2));
//
//        Assert.assertEquals("label[0] (0, 1, 2)", item.toString());
//
//        item.removeLimit();
//        Assert.assertFalse(item.isLimitted());
//        Assert.assertEquals(5, item.getDimension());
//        Assert.assertEquals(0, item.get(0));
//        Assert.assertEquals(1, item.get(1));
//        Assert.assertEquals(2, item.get(2));
//        Assert.assertEquals(3, item.get(3));
//        Assert.assertEquals(4, item.get(4));
//        Assert.assertEquals("label[0] (0, 1, 2, 3, 4)", item.toString());
//    }
//
//    @Test(expected=IllegalArgumentException.class)
//    public void testSetNegativeValueToSetLimitsMethod() throws Exception{
//        item.setLimit(-1);
//    }
//
//    @Test(expected=IndexOutOfBoundsException.class)
//    public void testOutOfBoundsExceptionToAddMethod() throws Exception{
//        item.setLimit(1);
//        item.add(2, 5);
//    }
//
//    @Test(expected=IndexOutOfBoundsException.class)
//    public void testOutOfBoundsExceptionToSetMethod() throws Exception{
//        item.setLimit(1);
//        item.set(2, 5);
//    }
//
//    @Test(expected=IndexOutOfBoundsException.class)
//    public void testOutOfBoundsExceptionToGetMethod() throws Exception{
//        item.setLimit(1);
//        item.get(2);
//    }
//
//    @Test(expected=IndexOutOfBoundsException.class)
//    public void testOutOfBoundsExceptionToRemoveMethod() throws Exception{
//        item.setLimit(1);
//        item.remove(2);
//    }
//
//    @Test(expected=IllegalArgumentException.class)
//    public void setZeroToSetLimitsMethod() throws Exception{
//        item.setLimit(0);
//    }
//}
